package io;

import java.io.File;
import java.util.Scanner;

public class demo12 {
    public static void main(String[] args) {
        //让用户输入一个要查询的文件名
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查找的目录");
        String dir = scanner.nextLine();
        System.out.println("请输入要查询的文件名");
        String fileName = scanner.nextLine();
        System.out.println(fileName);

        //2.判断目录是否存在
        File rootFile = new File(dir);
        if (!rootFile.isDirectory()) {
            System.out.println("输入的目录不存在");
            return;
        }
        //3.进行搜索,递归遍历目录中的所有子文件和子目录
        scanDir(rootFile,fileName);

    }

    private static void scanDir(File rootFile, String fileName) {
        //1.列出rootfile中的内容
        File[] files = rootFile.listFiles();
        if (files == null) {
            //空目录
            return;
        }
        //2.遍历files数组，判定每个元素的类型
        for (File file : files) {
            if (file.isDirectory()) {
                //是一个目录，递归调用scanDir方法
                scanDir(file, fileName);
            }else if (file.isFile()) {
                //是一个普通文件，判定文件名是否匹配
                if (file.getName().contains(fileName)) {
                    tryDelete(file);
                }
            }
        }
    }

    private static void tryDelete(File file) {
        System.out.println("准备删除文件：" + file.getAbsolutePath()); 
        Scanner scanner = new Scanner(System.in);
        System.out.println("是否确认删除？（Y/N）");
        String  choice = scanner.nextLine();
        if (choice.equals("Y") || choice.equals("y")) {
            file.delete();
            System.out.println("删除成功");
        }
    }
}
